{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Scaling to median and quantiles\n",
    "\n",
    "We saw in previous lectures that the magnitude of the variables affects different machine learning algorithms for different reasons. In this section, I will cover a few standard ways of squeezing the magnitude of the variables.\n",
    "\n",
    "\n",
    "Scaling using median and quantiles consists of substracting the median to all the observations, and then dividing by the interquantile difference. The interquantile difference is the difference between the 75th and 25th quantile:\n",
    "\n",
    "IQR = 75th quantile - 25th quantile\n",
    "\n",
    "X_scaled = (X - X.median) / IQR\n",
    "\n",
    "For an overview of the different scaling methods check:\n",
    "http://scikit-learn.org/stable/auto_examples/preprocessing/plot_all_scaling.html#sphx-glr-auto-examples-preprocessing-plot-all-scaling-py\n",
    "\n",
    "\n",
    "Let's demonstrate the Median and Quantile scaling method using scikit-learn. The function of sklearn to perform this procedure is the RobustScaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "# RobustScaler from sklearn performs the above described operation\n",
    "from sklearn.preprocessing import RobustScaler\n",
    "\n",
    "from sklearn.metrics import roc_auc_score\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "% matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "      <th>Fare</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>22.0</td>\n",
       "      <td>7.2500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>38.0</td>\n",
       "      <td>71.2833</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>26.0</td>\n",
       "      <td>7.9250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>53.1000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>35.0</td>\n",
       "      <td>8.0500</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Survived  Pclass   Age     Fare\n",
       "0         0       3  22.0   7.2500\n",
       "1         1       1  38.0  71.2833\n",
       "2         1       3  26.0   7.9250\n",
       "3         1       1  35.0  53.1000\n",
       "4         0       3  35.0   8.0500"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# load the numerical variables of the Titanic Dataset\n",
    "data = pd.read_csv('titanic.csv', usecols = ['Pclass', 'Age', 'Fare', 'Survived'])\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "      <th>Fare</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>714.000000</td>\n",
       "      <td>891.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>0.383838</td>\n",
       "      <td>2.308642</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>32.204208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.486592</td>\n",
       "      <td>0.836071</td>\n",
       "      <td>14.526497</td>\n",
       "      <td>49.693429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.420000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>20.125000</td>\n",
       "      <td>7.910400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>28.000000</td>\n",
       "      <td>14.454200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>31.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>512.329200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Survived      Pclass         Age        Fare\n",
       "count  891.000000  891.000000  714.000000  891.000000\n",
       "mean     0.383838    2.308642   29.699118   32.204208\n",
       "std      0.486592    0.836071   14.526497   49.693429\n",
       "min      0.000000    1.000000    0.420000    0.000000\n",
       "25%      0.000000    2.000000   20.125000    7.910400\n",
       "50%      0.000000    3.000000   28.000000   14.454200\n",
       "75%      1.000000    3.000000   38.000000   31.000000\n",
       "max      1.000000    3.000000   80.000000  512.329200"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# let's have a look at the values of those variables to get an idea of the magnitudes\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see from the above statistics table that the magnitudes of the variables are different. The mean values and medians are different as well as the maximum values and the range over which the values are spread."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Survived      0\n",
       "Pclass        0\n",
       "Age         177\n",
       "Fare          0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# let's check at missing  data\n",
    "\n",
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Age contains missing information, so I will fill those observations with the median in the next cell."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((623, 3), (268, 3))"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# let's separate into training and testing set\n",
    "X_train, X_test, y_train, y_test = train_test_split(data[['Pclass', 'Age', 'Fare']],\n",
    "                                                    data.Survived, test_size=0.3,\n",
    "                                                    random_state=0)\n",
    "X_train.shape, X_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# let's fill the missing data\n",
    "\n",
    "X_train.Age.fillna(X_train.Age.median(), inplace=True)\n",
    "X_test.Age.fillna(X_train.Age.median(), inplace=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Robust Scaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# robust scaler\n",
    "\n",
    "scaler = RobustScaler() # call the object\n",
    "X_train_scaled = scaler.fit_transform(X_train) # fit the scaler to the train set, and then scale it\n",
    "X_test_scaled = scaler.transform(X_test) # scale the test set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "means (Pclass, Age and Fare):  [-0.47512039  0.0567354   0.7440926 ]\n",
      "std (Pclass, Age and Fare):  [ 0.55998791  1.00109914  2.05514812]\n"
     ]
    }
   ],
   "source": [
    "#let's have a look at the scaled training dataset\n",
    "\n",
    "print('means (Pclass, Age and Fare): ', X_train_scaled.mean(axis=0))\n",
    "print('std (Pclass, Age and Fare): ', X_train_scaled.std(axis=0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, the distributions are not centered in zero and the standard deviation is not 1 as when normalising the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Min values (Pclass, Age and Fare):  [-1.33333333 -2.17923077 -0.63931806]\n",
      "Max values (Pclass, Age and Fare):  [  0.           3.92307692  21.19676931]\n"
     ]
    }
   ],
   "source": [
    "# let's look at the new minimum and maximum values\n",
    "\n",
    "print('Min values (Pclass, Age and Fare): ', X_train_scaled.min(axis=0))\n",
    "print('Max values (Pclass, Age and Fare): ', X_train_scaled.max(axis=0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Neither are the minimum and maximum values set to a certain upper and lower boundaries like in the MinMaxScaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([  30.,   10.,   10.,   19.,   52.,   67.,   56.,  183.,   56.,\n",
       "          34.,   28.,   25.,   18.,   10.,   10.,    7.,    3.,    3.,\n",
       "           1.,    1.]),\n",
       " array([-2.17923077, -1.87411538, -1.569     , -1.26388462, -0.95876923,\n",
       "        -0.65365385, -0.34853846, -0.04342308,  0.26169231,  0.56680769,\n",
       "         0.87192308,  1.17703846,  1.48215385,  1.78726923,  2.09238462,\n",
       "         2.3975    ,  2.70261538,  3.00773077,  3.31284615,  3.61796154,\n",
       "         3.92307692]),\n",
       " <a list of 20 Patch objects>)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADzJJREFUeJzt3X2MHWd5hvHrrsNHxYcI9TaNkribSAEpIDDqKqWioJRA\nMQ1KCFJTWy0KJcIgUQQqEk1AKrQoUloIFIkCMsRKUINJ2pASlVAwFBFV4mtNXdchCSTBEbaMvSRt\ngYLS2nn6x47bg1l7d8+c47P77vWTjnbmna9nZO+t2XfemZOqQpLUrl+YdAGSpPEy6CWpcQa9JDXO\noJekxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNO23SBQCsX7++pqenJ12GJK0qu3bt+kFVTS223ooI\n+unpaWZnZyddhiStKkkeWsp6dt1IUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQ\nS1LjVsSTsVobpq/+zNDb7rvukhFWIq0tXtFLUuMMeklqnEEvSY0z6CWpcYsGfZLtSQ4n2TvQdkuS\n3d1nX5LdXft0kp8OLPvIOIuXJC1uKaNubgQ+CHz8WENV/d6x6STXA/85sP4DVbVxVAVKkvpZNOir\n6q4k0wstSxLgCuDFoy1LkjQqffvoXwgcqqrvDLSd23XbfDnJC3vuX5LUU98HprYAOwbmDwIbqurh\nJL8G/H2SZ1XVD4/fMMlWYCvAhg0bepYhSTqRoa/ok5wGvAq45VhbVT1aVQ9307uAB4BnLLR9VW2r\nqpmqmpmaWvS7bSVJQ+rTdfMS4N6q2n+sIclUknXd9HnA+cCD/UqUJPWxlOGVO4CvAM9Msj/JVd2i\nzfxstw3Ai4A93XDLvwPeUFWPjLJgSdLyLGXUzZYTtL9mgbbbgNv6lyVJGhWfjJWkxhn0ktQ4g16S\nGmfQS1LjDHpJapxBL0mNM+glqXEGvSQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalx\nBr0kNc6gl6TGGfSS1DiDXpIat5QvB9+e5HCSvQNt70pyIMnu7vM7A8uuSXJ/kvuSvGxchUuSlmYp\nV/Q3ApsWaH9/VW3sPncCJLkA2Aw8q9vmQ0nWjapYSdLyLRr0VXUX8MgS93cZ8MmqerSqvgvcD1zY\noz5JUk99+ujflGRP17Vzetd2FvC9gXX2d22SpAkZNug/DJwHbAQOAtcvdwdJtiaZTTI7Nzc3ZBmS\npMUMFfRVdaiqjlbVY8BH+f/umQPAOQOrnt21LbSPbVU1U1UzU1NTw5QhSVqCoYI+yZkDs5cDx0bk\n3AFsTvKEJOcC5wNf71eiJKmP0xZbIckO4CJgfZL9wDuBi5JsBArYB7weoKruTnIr8C3gCPDGqjo6\nntIlSUuxaNBX1ZYFmm84yfrXAtf2KUqSNDo+GStJjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BL\nUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNM+glqXEGvSQ1\nzqCXpMYtGvRJtic5nGTvQNt7ktybZE+S25M8rWufTvLTJLu7z0fGWbwkaXFLuaK/Edh0XNtO4NlV\n9Rzg28A1A8seqKqN3ecNoylTkjSsRYO+qu4CHjmu7fNVdaSb/Spw9hhqkySNwCj66F8LfHZg/tyu\n2+bLSV54oo2SbE0ym2R2bm5uBGVIkhbSK+iTvAM4AtzcNR0ENlTVRuCPgU8keepC21bVtqqaqaqZ\nqampPmVIkk5i6KBP8hrgFcDvV1UBVNWjVfVwN70LeAB4xgjqlCQNaaigT7IJeBtwaVX9ZKB9Ksm6\nbvo84HzgwVEUKkkazmmLrZBkB3ARsD7JfuCdzI+yeQKwMwnAV7sRNi8C/jzJ/wCPAW+oqkcW3LEk\n6ZRYNOirassCzTecYN3bgNv6FiVJGh2fjJWkxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNM+glqXEG\nvSQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIat2jQ\nJ9me5HCSvQNtT0+yM8l3up+nDyy7Jsn9Se5L8rJxFS5JWpqlXNHfCGw6ru1q4ItVdT7wxW6eJBcA\nm4Fnddt8KMm6kVUrSVq2RYO+qu4CHjmu+TLgpm76JuCVA+2frKpHq+q7wP3AhSOqVZI0hGH76M+o\nqoPd9PeBM7rps4DvDay3v2uTJE1I75uxVVVALXe7JFuTzCaZnZub61uGJOkEhg36Q0nOBOh+Hu7a\nDwDnDKx3dtf2c6pqW1XNVNXM1NTUkGVIkhYzbNDfAVzZTV8JfHqgfXOSJyQ5Fzgf+Hq/EiVJfZy2\n2ApJdgAXAeuT7AfeCVwH3JrkKuAh4AqAqro7ya3At4AjwBur6uiYapckLcGiQV9VW06w6OITrH8t\ncG2foiRJo+OTsZLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BL\nUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjFv3O2BNJ8kzgloGm84A/BZ4G\nvA6Y69rfXlV3Dl2hJKmXoYO+qu4DNgIkWQccAG4H/hB4f1W9dyQVSpJ6GVXXzcXAA1X10Ij2J0ka\nkVEF/WZgx8D8m5LsSbI9yekjOoYkaQi9gz7J44FLgb/tmj7MfH/9RuAgcP0JttuaZDbJ7Nzc3EKr\nSJJGYBRX9C8HvllVhwCq6lBVHa2qx4CPAhcutFFVbauqmaqamZqaGkEZkqSFjCLotzDQbZPkzIFl\nlwN7R3AMSdKQhh51A5DkScBLgdcPNP9lko1AAfuOWyZJOsV6BX1V/RfwS8e1vbpXRZKkkfLJWElq\nnEEvSY0z6CWpcQa9JDWu181YrU7TV39m6G33XXfJCCuRdCp4RS9JjTPoJalxBr0kNc6gl6TGGfSS\n1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDXOd91oWfq8J2eSx/UdPVrLvKKXpMYZ9JLUOINe\nkhrXq48+yT7gR8BR4EhVzSR5OnALMA3sA66oqn/vV6YkaVijuBn7W1X1g4H5q4EvVtV1Sa7u5v9k\nBMdRZ1I3RCWtTuPourkMuKmbvgl45RiOIUlaor5BX8AXkuxKsrVrO6OqDnbT3wfOWGjDJFuTzCaZ\nnZub61mGJOlE+nbd/GZVHUjyy8DOJPcOLqyqSlILbVhV24BtADMzMwuuI0nqr9cVfVUd6H4eBm4H\nLgQOJTkToPt5uG+RkqThDR30SZ6U5CnHpoHfBvYCdwBXdqtdCXy6b5GSpOH16bo5A7g9ybH9fKKq\n/jHJN4Bbk1wFPARc0b9MSdKwhg76qnoQeO4C7Q8DF/cpSpI0Oj4ZK0mNM+glqXEGvSQ1zqCXpMYZ\n9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGjeI7Y6UVr8/37O677pIRViKdel7R\nS1LjDHpJapxBL0mNM+glqXFN3Iz1RpsknZhX9JLUuKGv6JOcA3yc+S8JL2BbVX0gybuA1wFz3apv\nr6o7+xYqTYp/MWq169N1cwR4a1V9M8lTgF1JdnbL3l9V7+1fniSpr6GDvqoOAge76R8luQc4a1SF\nSZJGYyR99EmmgecBX+ua3pRkT5LtSU4fxTEkScPpPeomyZOB24C3VNUPk3wYeDfz/fbvBq4HXrvA\ndluBrQAbNmzoW4a0Itm/r5Wg1xV9kscxH/I3V9WnAKrqUFUdrarHgI8CFy60bVVtq6qZqpqZmprq\nU4Yk6SSGDvokAW4A7qmq9w20nzmw2uXA3uHLkyT11afr5gXAq4F/S7K7a3s7sCXJRua7bvYBr+9V\noSSplz6jbv4ZyAKLHDMvSSuIT8ZKUuOaeNfNatRnNIYkLYdBL61QDs3UqNh1I0mNM+glqXEGvSQ1\nzqCXpMYZ9JLUOINekhpn0EtS4wx6SWrcmn9gyidU1aJJ/r/2Ya2Vxyt6SWqcQS9JjTPoJalxa76P\nXtJo+TK2lccreklqnEEvSY0z6CWpcWPro0+yCfgAsA74WFVdN65jSWrDpMb/t35vYCxX9EnWAX8N\nvBy4ANiS5IJxHEuSdHLj6rq5ELi/qh6sqv8GPglcNqZjSZJOYlxdN2cB3xuY3w/8+piOJUm9tP7K\niImNo0+yFdjazf44yX1jPNx64Adj3P+p4nmsLJ7HyrIqzyN/8XNNyzmPX13KSuMK+gPAOQPzZ3dt\n/6eqtgHbxnT8n5FktqpmTsWxxsnzWFk8j5XF8zixcfXRfwM4P8m5SR4PbAbuGNOxJEknMZYr+qo6\nkuSPgM8xP7xye1XdPY5jSZJObmx99FV1J3DnuPa/TKeki+gU8DxWFs9jZfE8TiBVNep9SpJWEF+B\nIEmNWzNBn+Q9Se5NsifJ7UmeNumahpHkd5PcneSxJKtuhEGSTUnuS3J/kqsnXc8wkmxPcjjJ3knX\n0keSc5J8Kcm3uv9Tb550TcuV5IlJvp7kX7tz+LNJ19RHknVJ/iXJP4xyv2sm6IGdwLOr6jnAt4Fr\nJlzPsPYCrwLumnQhy9XQqzFuBDZNuogROAK8taouAJ4PvHEV/ns8Cry4qp4LbAQ2JXn+hGvq483A\nPaPe6ZoJ+qr6fFUd6Wa/yvzY/lWnqu6pqnE+XDZOTbwao6ruAh6ZdB19VdXBqvpmN/0j5gPmrMlW\ntTw178fd7OO6z6q88ZjkbOAS4GOj3veaCfrjvBb47KSLWIMWejXGqgqWViWZBp4HfG2ylSxf192x\nGzgM7KyqVXcOnb8C3gY8NuodN/VVgkm+APzKAoveUVWf7tZ5B/N/st58KmtbjqWchzQqSZ4M3Aa8\npap+OOl6lquqjgIbu/tutyd5dlWtqvsnSV4BHK6qXUkuGvX+mwr6qnrJyZYneQ3wCuDiWsHjShc7\nj1Vs0Vdj6NRK8jjmQ/7mqvrUpOvpo6r+I8mXmL9/sqqCHngBcGmS3wGeCDw1yd9U1R+MYudrpuum\n+yKUtwGXVtVPJl3PGuWrMVaQJAFuAO6pqvdNup5hJJk6NoIuyS8CLwXunWxVy1dV11TV2VU1zfzv\nxT+NKuRhDQU98EHgKcDOJLuTfGTSBQ0jyeVJ9gO/AXwmyecmXdNSdTfDj70a4x7g1tX4aowkO4Cv\nAM9Msj/JVZOuaUgvAF4NvLj7ndjdXVGuJmcCX0qyh/kLiZ1VNdKhiS3wyVhJatxauqKXpDXJoJek\nxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNM+glqXH/C/kX+IG+N9mhAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf0b0f35da0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# let's look at the distribution of Age transformed\n",
    "\n",
    "plt.hist(X_train_scaled[:,1], bins=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([ 388.,  118.,   54.,   27.,   10.,   12.,    1.,    0.,    7.,\n",
       "           1.,    3.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,\n",
       "           0.,    2.]),\n",
       " array([ -0.63931806,   0.45248631,   1.54429068,   2.63609505,\n",
       "          3.72789941,   4.81970378,   5.91150815,   7.00331252,\n",
       "          8.09511689,   9.18692126,  10.27872563,  11.37052999,\n",
       "         12.46233436,  13.55413873,  14.6459431 ,  15.73774747,\n",
       "         16.82955184,  17.92135621,  19.01316058,  20.10496494,  21.19676931]),\n",
       " <a list of 20 Patch objects>)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\ngg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf0b23dfbe0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# let's look at the distribution of Fare transformed\n",
    "\n",
    "plt.hist(X_train_scaled[:,2], bins=20)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The variable Age has a somewhat normal distribution after the transformation, reflecting the approximately Gaussian distribution that shows the original variable. Fare on the other had shows a skewed distribution, which is also evidenced after variable transformation in the previous plot."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.JointGrid at 0xf0b2735ba8>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf0b2735b70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# let's look at how transformed age looks like compared to the original variable\n",
    "\n",
    "sns.jointplot(X_train.Age, X_train_scaled[:,1], kind='kde')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.JointGrid at 0xf0b285f2b0>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf0b285f518>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# let's look at how transformed Fare looks like compared to the original variable\n",
    "\n",
    "sns.jointplot(X_train.Fare, X_train_scaled[:,2], kind='kde', xlim=(0,200), ylim=(-1,3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "As we can see, The robust scaler does a better job at preserving the spread of the variable after transformation for skewed variables like Fare (compare with the standard scaler or the MinMaxScaler)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "### Conclusions\n",
    "\n",
    "Typically, at the time of setting the features within a similar scale for Machine Learning, standarisation is the normalisation method of choice. And this is done without taking into account the distribution of the variable.\n",
    "\n",
    "However, we have seen in the past 3 lectures that the different normalisation methods have different advantages and disadvantages, and when the distribution of the variable is skewed, perhaps it is better to scale using the mean and quantiles method, which is more robust to the presence of outliers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": "block",
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
